#ifndef SIMULATED_ANNEALING_H
#define SIMULATED_ANNEALING_H

#define EPS 0.0001

#include "algorithm.h"

#include <cstdlib>
#include <list>
#include <ctime>
#include <cmath>
#include <ctime>
#include <cfloat>

using std::list;

class SimulatedAnnealing : public Algorithm{
	public:
		SimulatedAnnealing( const char* );
		~SimulatedAnnealing();
		
		int* initHeuristic();
		int* changeN(int*, int);
		int getSolutionQuality(int*);
		void copySolution(int*, int*);
		int getQualityOfBest();
		int* VNS(int*);
		
		void solve();
	private:
		int quality_best;
		
};

#include "simulated_annealing.cpp"

#endif